package cn.seecoder.courselearning.service.course;

import cn.seecoder.courselearning.dto.course.CourseQuestionDTO;
import cn.seecoder.courselearning.dto.course.CourseTestDTO;
import cn.seecoder.courselearning.dto.course.CourseTestFinishDTO;
import cn.seecoder.courselearning.dto.course.CourseTestQuestionAddDTO;
import cn.seecoder.courselearning.vo.ResultVO;
import cn.seecoder.courselearning.vo.course.test.CourseQuestionVO;
import cn.seecoder.courselearning.vo.course.test.CourseTestVO;

import java.util.List;

public interface CourseTestService {
    
    ResultVO createQuestion(CourseQuestionDTO courseQuestionDTO);
    
    ResultVO<List<CourseQuestionVO>> getQuestionsByCourseId(int courseId);

    ResultVO<List<CourseQuestionVO>> getQuestionsByTestId(int testId);

    ResultVO fixQuestion(CourseQuestionDTO courseQuestionDTO);

    ResultVO deleteQuestion(CourseQuestionDTO courseQuestionDTO);

    ResultVO checkAnswerAndCalculateScore(CourseTestFinishDTO courseTestFinishDTO);

    ResultVO deleteTest(CourseTestDTO courseTestDTO);

    ResultVO fixTest(CourseTestDTO courseTestDTO);

    ResultVO createTest(CourseTestDTO courseTestDTO);

    ResultVO<List<CourseTestVO>> getTestsByCourseId(int courseId);

    ResultVO<List<CourseTestVO>> getTestsByTeacherId(int teacherId);

    ResultVO finishTest(CourseTestFinishDTO courseTestFinishDTO);

    ResultVO addTestQuestion(CourseTestQuestionAddDTO courseTestQuestionAddDTO);
}
